Transformations

Isometries/Orthogonal matrix: Rotations and Translations

If we want to rotate, we can add one single scalar. We can do that by using this transformation matrix, and justby using a single number we can rotate.

[cosθsinθsinθcosθ]

This preserves angles and distances.

Why?

Of course you remember that each column of the transform where the unit vectors are gonna land.
Then, with [cosθsinθ], will make j^ land on [10] when θ=0. Then it will continue rotating left with higher angles.

For i^ it's the same thing, the only difference is that it is at a different position in the unit circle.
In fact, when θ=0, [sinθcosθ]=[01], which is exactly the basic i^.

Info

If you transpose an orthogonal matrix(rotation), you get its inverse matrix, which is the exact rotation but backwards.

So with AAT, nothing changes.

Similarity: Scale, Flip, Rotation and Translations

Now we add a scaling factor to the two axes.

[SxcosθsinθsinθSycosθ]

Preserve angles and ratio between distances.

Why the S coefficients?

Because as you remember, the unit vectors have two components, x and y.
The main component of i^ is x and the main component of j^ is y.

Here we are just scaling the main components of the two vectors.

Affine:

We add Cx and Cy to the axes that were previously 0.

[sxcosθ   cxsinθcysinθ   sycosθ]

Preserve preserve parallelism but not angles.

Why the C coefficients?

There are two ways to shear:

  • By rotating one vector and keeping the other the same:
  • Rotate both the vectors and extend only one of them.

Since in this case we have only 1 angle, we are using the second way. The shear can only happen if we rotate the vectors, since if the secondary component is 0 in both of the basis vectors, unless it is rotated.

So, here, the C coefficients serve the purpose of scaling the secondary component of the unit vectors, which is rotated.